import {reqUserInfo,reqUserLogout} from '@/api'
import {Message} from 'element-ui';
import {deleteToken} from '@/utils/auth'


//定义一个actions -- 接收组件的动作
const actions ={
    //获取用户信息
    async getUserInfo({ commit }) {
        //发请求获取用户信息
        let result = await reqUserInfo()
        if (result.code === 200) {
            commit('SAVE_USER_INFO',result.data)
        }else{
            Message.error(result.message)
            return Promise.reject(result.message)
        }
    },
    //销毁token,用户退出登录
    async userLogout({ commit}){
        let result = await reqUserLogout()
        if (result.code === 200){
            commit('USER_LOGOUT');
              //删除token
            deleteToken();
        }else{
            Message.warning(result.message)
            // return Promise.reject(result.message)
            return new Promise(() =>{})
        }
    }

};
//定义一个mutations -- 真正修改数据
const mutations = {
    //保存用户信息
    SAVE_USER_INFO(state,info){
        state.userInfo = info;
    },
    //删除用户信息
    USER_LOGOUT(state){
        state.userInfo = {};
    }
};

//定义一个state -- 存储数据
const state = {
    userInfo:{}
};

//定义一个getters -- 对state中的数据的处理
const getters = {};

//暴露
export default {
    actions,
    mutations,
    state,
    getters,
}